// pages/cart/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    address:{},
    cart:[],
    cart1:{
      genre: "",
      gross: 0,
      image: "",
      price: 0,
      productsell: 0,
      title: "",
      _id: 0,
      num:0,
      checked:false
    },
    allcheck:false,
    totalPrice:0,
    totalNum:0
   
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let that = this
    const db = wx.cloud.database()
    let cart = []
    /* db.collection('flower').limit(1).get({
      success(res){
       that.setData({
         cart1:{
          genre: res.data[0].genre,
          gross: res.data[0].gross,
          image: res.data[0].image,
          price: res.data[0].price,
          productsell: res.data[0].productsell,
          title: res.data[0].title,
          _id: res.data[0]._id,
          num:1,
          checked:false
         },
         
       })
      cart.push(that.data.cart1)
      that.setData({
        cart:cart
      })
      
      }
    }) */
    
  },

  //设置购物车状态
  setCart(cart){
    let allcheck = true;
    //总价格 总数量
    let totalPrice = 0;
    let totalNum = 0; 
    cart.forEach(v => {
      if (v.checked) {
        totalPrice += v.num * v.price;
        totalNum += v.num;
      }else{
        allcheck = false;
      }
    });
    //判断数组是否为空
    allcheck = cart.length!=0?allcheck:false;
    this.setData({
      cart,
      totalPrice,
      totalNum,
      allcheck
    });
    wx.setStorageSync("cart", cart);
  },

  handleChoseAddress(e){
    //获取收货地址
    wx.chooseAddress({
      success: (result) => {
         wx.setStorageSync("address", result);
      },
    });
    
  },
  //点击结算
  handlePay(e){
    //判断收货地址
    const {totalNum} = this.data;
  
    //选购商品
    if (totalNum == 0) {
      wx.showToast({
        title: '您还没有选择商品',
        icon: 'none',
        mask: false,
      });
      return;
    }
        //跳转到支付页面
        wx.navigateTo({
          url: '/pages/pay/index',
        })

  },

  //复选框
  handleItemChange(e){

    //获取被修改的商品的ID
    const _id = e.currentTarget.dataset.id;
    //获取购物车数组
    let {cart} = this.data
    //找到被修改的商品对象
    let index = cart.findIndex(v=>v._id===_id);
    //选中状态去反
    cart[index].checked=!cart[index].checked;
    this.setCart(cart);
  },

  //商品数量编辑
  handleItemNumEdit(e){
    //获取传递参数
    const {operation,id} = e.currentTarget.dataset;
    let {cart} = this.data
    const index = cart.findIndex(v=>v._id === id)
    
    let that = this

    //判断是否为第一条  且是否删除
    if(cart[index].num ===1 && operation ===-1){
      wx.showModal({
        title: '提示',
        content: '是否要删除',
        success: (res) => {
          if (res.confirm) {
            cart.splice(index,1);//删除该商品
            this.setCart(cart);
          } else if (res.cancel) {
            console.log('用户点击取消')
          }
        }
      })
    }else{
      //修改数据量
      cart[index].num += operation;
      this.setCart(cart);
    }

  },

  //全选和反选
handleItemAllcheck(e){
    //获取data中的数据
    let {cart,allcheck} = this.data;
    //修改值
    allcheck = !allcheck;
    //循环修改cart数组中的商品选中状态
    cart.forEach(v=>v.checked=allcheck);
    //把修改后的值填充回data或缓存中
    this.setCart(cart);
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

    //获取缓存中的收货地址信息
    const address = wx.getStorageSync('address');
     //获取缓存中的购物车数据
    const cart = wx.getStorageSync('cart')||[];
    
    this.setData({
      address
    })
    this.setCart(cart);
   
   
  },
  handleToBar(e){
    wx.switchTab({
      url: '../home/home',
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})